Rendering process apparatus capable of improving processing speed of overall graphic system

ABSTRACT

An input section inputs vertex data from a host CPU or a geometry process section to a rendering main process section. The rendering main process section performs a rendering process in accordance with the vertex data inputted into the input section. Therefore, the host CPU can directly write the vertex data, which does not require a geometry process, to a rendering process apparatus and a processing speed of an overall graphics system can be thereby improved.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a rendering process apparatus for acomputer graphics system, and particularly relates to a renderingprocess apparatus capable of improving the processing efficiency ofprimitive rendering.

2. Description of the Background Art

In recent years, a computer graphics system which processesthree-dimensional images at high speed has been utilized in a carnavigation system, a game machine or the like in order to output preciseimages with presence.

The computer graphics system is divided into a geometry process sectionand a rendering process section. The geometry process section performs acoordinate transformation and a lighting process to vertexes whichconstitute a primitive such as a line or a triangle, and generatesvertex data (xyz coordinate data, color data and texture coordinatedata). The rendering process section performs a process to the primitivewhich consists of a plurality of vertex data applied from the geometryprocess section (J. D. Foley and the like, “Computer Graphics:Principles and Practice”, pp. 866-871, pp. 876, 1992, Addison-WesleyPublishing Company).

The rendering process section obtains the rendering position of theprimitive in a display memory device, interpolates data on the regionsbetween the vertexes applied from the geometry process section, andallocates pixel data to the display memory device by a methodcorresponding to the type of the primitive (J. D. Foley and the like,“Computer Graphics: Principles and Practice”, pp. 72-75, pp. 668-672 andpp. 882-886, 1992, Addison-Wesley Publishing Company).

If a rendering process is performed to a primitive having a complexshape such as a polygon or a circle, rendering quality cannot bemaintained uniformly because of the coordinate transformation and,furthermore, the rendering process becomes complex. For such a primitivehaving a complex shape, therefore, a primitive data group obtained bydividing the primitive into triangles is constructed, therebysimplifying the process performed by the rendering process section andmaking rendering quality uniformly (OpenGL Architecture Review Board,“OpenGL Programming Guide (Japanese Edition)”, pp. 30-31, 1993,Addison-Wesley Publishers Japan).

In a conventional computer graphics system, a geometry process sectionand a rendering process section are connected in series and a pipelineprocess is thereby performed. Due to this, even if a database can beconstructed by primitives each of which has been already subjected to acoordinate transformation and a lighting process or a primitive whichdoes not require a geometry process itself is to be rendered, coordinatedata is always applied to the rendering process section through thegeometry process section and the geometry process section performs anunnecessary determination process or the like. There has been a problemthat this disadvantage makes it impossible to improve the processingefficiency of the overall computer graphics system.

Furthermore, since the rendering process section starts processes afterall the vertex data constituting a primitive are obtained, there hasalso been a problem that overhead required to transfer the vertex datadisadvantageously deteriorates processing efficiency.

In addition, the rendering process section processes a line strip, atriangle strip, a triangle fan and the like which are used as the typesof the primitives constituting a rendering object (OpenGL ArchitectureReview Board, “OpenGL Programming Guide (Japanese Edition)”, pp. 36-37,1993, Addison-Wesley Publishers Japan) in independent, basic point, lineand triangle units, respectively. This makes it necessary for a host CPU(Central Processing Unit) or the geometry process section to issue arendering instruction to the rendering process section while managingthe order of vertexes so that the primitive has a primitive format whichthe rendering process section can process. As a result, there has been aproblem that the processing performance of the overall computer graphicssystem is disadvantageously deteriorated.

SUMMARY OF THE INVENTION

It is an object of the present invention to provide a rendering processapparatus which can reduce processing load imposed on a host CPU or ageometry process unit and which can improve the processing speed of anoverall graphics system.

It is another object of the present invention to provide a renderingprocess apparatus which can reduce the processing load of a renderingprocess and which can improve the processing speed of an overallgraphics system.

According to one aspect of the present invention, a rendering processapparatus which is connected to a host processor and a geometry processapparatus, includes: a rendering main process section performing arendering process in accordance with vertex data; an input sectionselectively inputting vertex data from the host processor and thegeometry process section to the rendering process section; and an inputcontrol section controlling output of the vertex data inputted into theinput section, and controlling the rendering process performed by therendering main process section.

Since the input section selectively inputs the vertex data from the hostprocessor and that from the geometry process section to the renderingprocess section, the host processor can directly write vertex data whichdoes not require a geometry process, to the rendering process apparatus,and processing speed can be thereby improved.

According to another aspect of the present invention, a renderingprocess apparatus includes: a rendering main process section performinga rendering process in accordance with vertex data; an input sectioninputting vertex data from an outside to the rendering process section;and an input control section controlling output of the vertex datainputted into the input section, and controlling the rendering processperformed by the rendering main process section, wherein the inputsection has: a pending register holding the vertex data inputted fromthe outside; and a plurality of vertex registers to which the vertexdata held in the pending register is transferred.

The input section has the pending register and a plurality of vertexregisters. Due to this, even if the rendering main process section isperforming a rendering process, it is possible to input vertex data on aprimitive to be rendered next.

The foregoing and other objects, features, aspects and advantages of thepresent invention will become more apparent from the following detaileddescription of the present invention when taken in conjunction with theaccompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing a schematic configuration of agraphics system in a first embodiment according to the presentinvention;

FIG. 2 is a block diagram showing a schematic configuration of arendering process section 3;

FIG. 3 is a block diagram showing a schematic configuration of an Xinput section 13 as one example of element data input sections 13 to 21;

FIGS. 4A to 4D are views for explaining a rendering process of renderingprocess section 3;

FIG. 5 is a timing chart for rendering process section 3 in a case ofperforming a rendering process to triangle strips shown in FIG. 4A;

FIG. 6 is a timing chart for rendering process section 3 in a case ofperforming a rendering process to line strips shown in FIG. 4B;

FIG. 7 is a timing chart for rendering process section 3 in a case ofperforming a rendering process to triangle fans shown in FIG. 4C;

FIG. 8 is a timing chart for rendering process section 3 in a case ofperforming a rendering process to points shown in FIG. 4D;

FIG. 9A shows that triangle strips are clipped, FIG. 9B shows thatpoints are clipped, FIG. 9C shows that the rendering process performedto the line strings, and FIG. 9D shows the rendering process performedto the points;

FIG. 10 is a timing chart for rendering process section 3 when thetriangle strips shown in FIG. 9A are clipped;

FIG. 11 is a timing chart for rendering process section 3 when thepoints shown in FIG. 9B are clipped;

FIG. 12 is a timing chart for a rendering process apparatus in a secondembodiment according to the present invention when the rendering processapparatus renders line strips;

FIG. 13 is a timing chart for the rendering process apparatus in thesecond embodiment when the rendering process apparatus renders thepoints shown in FIG. 9D;

FIG. 14 is a block diagram showing a schematic configuration of anelement data input section in a third embodiment according to thepresent invention;

FIG. 15 is a block diagram showing a schematic configuration of anelement data input section in a fourth embodiment according to thepresent invention;

FIG. 16 is a block diagram showing schematic configurations of an Xinput section and a Y input section in a fifth embodiment according tothe present invention.

FIG. 17 is a block diagram showing schematic configurations of an Xcoordinate comparison section 66 and a Y coordinate comparison section72 shown in FIG. 16;

FIG. 18 shows one example of sorting result codes outputted from asorting section 80;

FIG. 19 shows triangle strips rendered by a rendering process apparatusin a fifth embodiment according to the present invention;

FIG. 20 is a timing chart for rendering process section 3 when thetriangle strips shown in FIG. 19 are rendered;

FIG. 21 is a block diagram showing schematic configurations of each ofelement data input sections 13 to 21 in a sixth embodiment according tothe present invention; and

FIG. 22 is a timing chart for rendering process section 3 in the sixthembodiment according to the present invention when the triangle stripsshown in FIG. 4A are rendered.

DESCRIPTION OF THE PREFERRED EMBODIMENTS First Embodiment

FIG. 1 is a block diagram showing a schematic configuration of agraphics system in a first embodiment according to the presentinvention. This graphics system includes a host CPU 1, a geometryprocess section 2, a rendering process section 3 and a display section4. Geometry process section 2 and rendering process section 3 areconnected to host CPU 1 by one data bus cpu_data. Geometry processsection 2 and rendering process section 3 are connected to each other bytwo data buses ge_data0 and ge_data1. While a case where two data busesconnect geometry process section 2 to rendering process section 3 willbe described in this embodiment, the number of data buses may be one ornot less than three.

Geometry process section 2 performs a coordinate transformation tovertex data which constitute a primitive applied from host CPU 1,performs a lighting process for obtaining the colors of the vertexes,and outputs the vertex data to rendering process section 3. In addition,if the vertex data does not require a geometry process, e.g., a databaseconsists of rendering objects already subjected to a geometry process,then host CPU 1 directly outputs the data to rendering process section3. Rendering process section 3 outputs image data after the renderingprocess to display section 4. Display section 4 displays the image dataoutput from rendering process section 3.

FIG. 2 is a block diagram showing a schematic configuration of renderingprocess section 3. Rendering process section 3 includes a rendering mainprocess section 11 which performs a rendering process based on thevertex data received from geometry process section 2 or host CPU 1, aninput control section 12 which controls the input of data from host CPU1 and geometry process section 2 and input sections 13 to 21 which inputdata according to elements, respectively.

As input sections for XYZ coordinate, an X input section 13, a Y inputsection 18 and a Z input section 14 are provided. As input sections forcolor data, an R input section 15, a G input section 19, a B inputsection 16 and an A (blending factor) input section 20 are provided. Asinput sections for texture coordinate, a U input section 17 and a Vinput section 21 are provided. While the input sections, into which XYZcoordinate values which are three-dimensional coordinates are input, areprovided in this embodiment, a W coordinate input section correspondingto a four-dimensional coordinate may be provided in addition to the X, Yand Z input section.

As described above, host CPU 1 is connected to rendering process section3 by data bus cpu_data. Data bus cpu_data is connected to each of inputsections 13 to 21. In addition, geometry process section 2 is connectedto rendering process section 3 by two data buses ge_data0 and ge_data1.Data bus ge_data0 is connected to X input section 13, Z input section14, R input section 15, B input section 16 and U input section 17, whiledata bus ge_data1 is connected to Y input section 18, G input section19, A input section 20 and V input section 21. Element data inputsections 13 to 21 are the same in configuration.

FIG. 3 is a block diagram showing the schematic configuration of X inputsection 13 as one example of element data input sections 13 to 21. Xinput section 13 includes a selector 30 which selects one of data busesge_data0 and cpu_data, a pending register X_PR 31 which temporarilyholds data received from selector 30, and vertex registers X_V0 (32),X_V1 (33) and X_V2 (34) to which the data held in pending register X_PR31 is transferred.

The data held in pending register X_PR 31 is transferred to one of threevertex registers X_V0 (32), X_V1 (33) and X_V2 (34). The outputs ofrespective vertex registers 32 to 34 are connected to rendering mainprocess section 11.

According to the configuration explained above, if host CPU 1 executesan application which does not require a geometry process, vertex datacan be directly transferred to rendering process section 3. Therefore,the vertex data is not passed through geometry process section 2 and itis possible to reduce unnecessary latency and to improve the processingspeed of the overall graphics system. At this moment, since geometryprocess section 2 does not operate, it is possible to reduce the powerconsumption of geometry process section 2.

Further, since geometry process section 2 and rendering process section3 are connected to each other by a plurality of data buses, it ispossible to improve efficiency for data transfer between geometryprocess section 2 and rendering process section 3 and to thereby improvethe processing speed of the overall graphics system.

FIGS. 4A to 4D are views for explaining the rendering process ofrendering process section 3. FIG. 4A shows the rendering processperformed to triangle strips, i.e., shows that three triangles 0-1-2(counterclockwise), 1-2-3 (clockwise) and 2-3-4 (counterclockwise) aresequentially rendered. FIGS. 4B to 4D will be described later.

FIG. 5 is a timing chart for rendering process section 3 when renderingprocess section 3 performs the rendering process to the triangle stripsshown in FIG. 4A. Rendering process section 3 performs the processsynchronously with a clock signal. An IN_READY signal is a signal whichis outputted from input control section 12 into geometry process section2 and host CPU 1. When IN_READY signal is at high level (abbreviated as“H level” hereinafter), geometry process section 2 or host CPU 1 canwrite data to rendering process section 3.

A GO_RC signal is a signal with which input control section 12 instructsrendering main process section 11 to start processing a primitive. WhenGO_RC signal is at H level, rendering main process section 11 startsprocessing a primitive. An RC_BUSY signal is a signal which indicateswhether or not rendering main process section 11 is executing theprocess to the primitive. When RC_BUSY signal is at H level, itindicates that rendering main process section 11 is executing theprocess to the primitive. A SURFACE signal is a signal which indicatesthe direction of each triangle to be rendered. When SURFACE signal is atlow level (abbreviated as “L level” hereinafter), it indicates that thetriangle is rendered counterclockwise. When SURFACE signal is at Hlevel, it indicates that the triangle is rendered clockwise.

In the first cycle T1, since IN_READY signal is active (at H level),geometry process section 2 outputs control data (cr0) which representsthe type of primitives to be rendered (control data cr0 represents thatthe primitive type is a triangle strip in this case) and the types ofelement data to be used (control data cr0 represents that all ofcoordinates, colors and texture coordinates are used in this case), todata bus ge_data0.

In a cycle T2, input control section 12 inputs the control data which isoutputted to data bus ge_data0. In addition, geometry process section 2outputs the X coordinate value (x0) and the Y coordinate value (y0) of avertex 0 to data buses ge_data0 and ge_data1, respectively.

In a cycle T3, the X and Y coordinate values x0 and y0 which areoutputted to data buses ge_data0 and ge_data1, respectively, are writtento pending register X_PR of X input section 13 and pending register Y_PRof Y input section 18, respectively. In addition, geometry processsection 2 outputs the Z coordinate value (z0) of vertex 0 to data busge_data0.

In a cycle T4, Z coordinate value z0 which is outputted to data busge_data0 is written to pending register Z_PR of Z input section 14. Inaddition, geometry process section 2 outputs R data (r0) and G data (g0)on vertex 0 to data buses ge_data0 and ge_data1, respectively.

In a cycle T5, R data r0 and G data g0 which are outputted to data busesge_data0 and ge_data1, respectively, are written to pending registerR_PR of R input section 15 and pending register G_PR of G input section19, respectively. In addition, geometry process section 2 outputs B data(b0) and A data (a0) on vertex 0 to data buses ge_data0 and ge_data1,respectively.

In a cycle T6, B data b0 and A data a0 which are outputted to data busesge_data0 and ge_data1, respectively, are written to pending registerB_PR of B input section 16 and pending register A_PR of A input section20, respectively. In addition, geometry process section 2 outputs the Ucoordinate value (u0) and V coordinate value (v0) of vertex 0 to databuses ge_data0 and ge_data1, respectively.

In a cycle T7, U coordinate value u0 and V coordinate value v0 which areoutputted to data buses ge_data0 and ge_data1, respectively, are writtento pending register U_PR of U input section 17 and pending register V_PRof V input section 21, respectively. In addition, geometry processsection 2 outputs the X coordinate value (x1) and Y coordinate value(y1) of a vertex 1 to data buses ge_data0 and ge_data1, respectively.

In a cycle T8, since all the to-be-used element data of vertex 0designated by control data cr0 have been inputted into element datainput sections 13 to 21, respectively, the element data of vertex 0 heldin pending registers X_PR, Y_PR, Z_PR, R_PR, G_PR, B_PR, A_PR, U_PR andV_PR are transferred to vertex registers X_V0, Y_V0, Z_V0, R_V0, G_V0,B_V0, A_V0, U_V0 and V_V0, respectively. At the same time, the Xcoordinate value x1 and the Y coordinate value y2 of vertex 1 which havebeen outputted to data buses ge_data0 and ge_data1 are written topending register X_PR of X input section 13 and pending register Y_PR ofY input section 18, respectively. In addition, geometry process section2 outputs the Z coordinate value (z1) of vertex 1 to data bus ge_data0.

Thereafter, the same process is repeated. Namely, in a cycle T13, theelement data of vertex 1 held in pending registers X_PR, Y_PR, Z_PR,R_PR, G_PR, B_PR, A_PR, U_PR and V_PR are transferred to vertexregisters X_V1, Y_V1, Z_V1, R_V1, G_V1, B_V1, A_V1, U_V1 and V_V1,respectively. In a cycle T18, the element data of vertex 2 held inpending registers X_PR, Y_PR, Z_PR, R_PR, G_PR, B_PR, A_PR, U_PR andV_PR are transferred to vertex registers X_V2, Y_V2, Z_V2, R_V2, G_V2,B_V2, A_V2, U_V2 and V_V2, respectively.

It is noted that the order of the element data inputted from geometryprocess section 2 into respective element data input sections 13 to 21may be optionally set. As shown in T8 to T12, for example, the elementdata may be inputted into respective element data input sections 13 to21 in the order of XYZ coordinate values, texture coordinate values andcolor data. Further, input control section 12 manages the types of theelement data inputted from geometry process section 2. If all the typesof to-be-used data instructed by control data cr0 are inputted intoelement data input sections 13 to 21, input control section 12 controlsthe element data to be transferred from the pending registers to thevertex registers, respectively.

As for to which of the three vertex registers, the element data istransferred from each pending register, the vertex data held in thepending register is set to be always transferred to vertex register 0right after control data cr0 is transferred and the other vertex data iscontrolled to be transferred to which vertex register depending on thedesignated primitive type. In case of the triangle strips shown in FIG.4A, the vertex data is transferred to the vertex registers in the orderof the vertex registers 0, 1, 2, 0, 1 and 2.

In a cycle T17 right before respective element data of vertex 2 aretransferred to respective vertex registers, input control section 12sets GO_RC signal to be active (at H level) and instructs rendering mainprocess section 11 to start processing the primitive. At this moment,input control section 12 sets SURFACE signal at L level to therebycontrols triangle 0-1-2 to be rendered counterclockwise.

In a cycle T18, rendering main process section 11 starts processing theprimitive, sets RC_BUSY signal at H level, and thereby notifies inputcontrol section 12 that rendering main process section 11 is executingthe process to the primitive so as not to update vertex registers 0 to2.

Even if rendering main process section 11 is processing triangle 0-1-2,IN_READY signal is kept at H level as shown in T18 to T21 and geometryprocess section 2 continues to write the respective element data ofvertex 3 to the pending registers. If all the element data of vertex 3have been written to the pending registers, the vertex data cannot betransferred from the pending registers to the vertex registers. Due tothis, IN_READY signal is set at L level to suspend writing the nextvertex data.

In a cycle T23, when rendering main process section 11 finishesprocessing triangle 0-1-2 and is ready to process the next primitive(triangle 1-2-3), rendering main process section 11 sets RC_BUSY signalat L level.

In a cycle T24, input control section 12 sets IN_READY signal at Hlevel, and notifies geometry process section 2 that respective elementdata of vertex 4 can be written to the pending registers. At the sametime, input control section 12 sets GO_RC signal to be active (at Hlevel), and thereby instructs rendering main process section 11 to startprocessing the next primitive (triangle 1-2-3).

In a cycle T25, input control section 12 transfers the respectiveelement data of vertex 3 held in the pending registers to vertexregisters 0. At this moment, input control section 12 toggles SURFACEsignal to H level and notifies rendering main process section 11 thatthe rendering order of triangle 1-2-3 is clockwise. Rendering mainprocess section 11 starts processing the primitive, sets RC_BUSY signalat H level, and thereby notifies input control section 12 that renderingmain process section 11 is executing the process to the primitive so asnot to update vertex registers 0 to 2.

In a cycle T25 and the following, respective element data of vertex 4are sequentially written to the pending registers. Even if all theelement data of vertex 4 are written to the pending registers, inputcontrol section 12 sets IN_READY signal at L level so as not to changethe contents of the pending registers and the control data as long asrendering main process section 11 is executing the process to triangle1-2-3, i.e., RC_BUSY signal is at H level.

When RC_BUSY signal becomes L level (in a cycle T28), input controlsection 12 sets IN_READY signal at H level to thereby notify geometryprocess section 2 that respective element data of the next vertex can bewritten to the pending registers, and sets GO_RC signal to be active (atH level) to thereby instruct rendering main process section 11 to startprocessing the next primitive (triangle 2-3-4) in a cycle T29.

In this way, triangles 0-1-2 (counterclockwise), 1-2-3 (clockwise) and2-3-4 (counterclockwise) shown in FIG. 4A are sequentially rendered.

FIG. 4B shows the rendering process performed to line strips, i.e.,shows that three lines 0-1, 1-2 and 2-3 are sequentially rendered. Inthis line strip rendering process, host CPU 1 writes vertex data torendering process section 3.

FIG. 6 is a timing chart for rendering process section 3 when renderingprocess section 3 performs the rendering process to the line stripsshown in FIG. 4B. In first cycle T1, since IN_READY signal is active (atH level), host CPU 1 outputs control data (cr0) which represents thetypes of primitives to be rendered (control data (cr0) represents linestrips in this case) and the types of element data to be used (controldata (cr0) represents that only the coordinates and colors are used andthat texture coordinates are not used in this case), to data buscpu_data.

In cycle T2, input control section 12 inputs the control data outputtedto data bus cpu_data. In addition, host CPU 1 outputs the X coordinatevalue (x0) of vertex 0 to data bus cpu_data.

In cycle T3, X coordinate value x0 which is outputted to data buscpu_data is written to pending register X_PR of X input section 13. Inaddition, host CPU 1 outputs the Y coordinate value (y0) of vertex 0 todata bus cpu_data.

In cycle T4, Y coordinate value y0 which is outputted to data buscpu_data is written to pending register Y_PR of Y input section 18. Inaddition, host CPU 1 outputs the Z coordinate value (z0) of vertex 0 todata bus cpu_data.

In cycle T5, Z coordinate value z0 which is outputted to data buscpu_data is written to pending register Z_PR of Z input section 14. Inaddition, host CPU 1 outputs R data (r0) on vertex 0 to data buscpu_data.

In cycle T6, R data r0 which is outputted to data bus cpu_data iswritten to pending register R_PR of R input section 15. In addition,host CPU 1 outputs G data (g0) on vertex 0 to data bus cpu_data.

In cycle T7, G data g0 which is outputted to data bus cpu_data iswritten to pending register G_PR of G input section 19. In addition,host CPU 1 outputs B data (b0) on vertex 0 to data bus cpu_data.

In cycle T8, B data b0 which is outputted to data bus cpu_data iswritten to pending register B_PR of B input section 16. In addition,host CPU 11 outputs A data (a0) on vertex 0 to data bus cpu_data.

In cycle T9, A data a0 which is outputted to data bus cpu_data iswritten to pending register A_PR of A input section 20. In addition,host CPU 1 outputs the X coordinate value (x1) of vertex 1 to data buscpu_data.

In cycle T10, since all the element data of vertex 0 designated bycontrol data cr0 have been inputted into element data input sections 13to 16 and 18 to 20, all the element data of vertex 0 held in pendingregisters X_PR, Y_PR, Z_PR, R_PR, G_PR, B_PR and A_PR are transferred tovertex registers X_V0, Y_V0, Z_V0, R_V0, G_V0, B_V0 and A_V0,respectively. At the same time, X coordinate value x1 which has beenoutputted to data bus cpu_data is written to pending register X_PR of Xinput section 13. In addition, host CPU 1 outputs the Y coordinate value(y1) of vertex 1 to data bus cpu_data.

Thereafter, the same process is repeated. Namely, in cycle T17, theelement data held in pending registers X_PR, Y_PR, Z_PR, R_PR, G_PR,B_PR, and A_PR are transferred to vertex registers X_V1, Y_V₁, Z_V1,R_V1, G_V1, B_V1 and A_V1, respectively.

It is noted that the order of the element data input into respectiveelement data input sections 13 to 16 and 18 to 20 from host CPU 1 may beoptionally set. In addition, input control section 12 manages the typesof the element data inputted from host CPU 1 and if all types ofto-be-used data designated by control data cr0 have been inputted intoelement data input sections 13 to 16 and 18 to 20, input control section12 controls the element data to be transferred from the pendingregisters to the vertex registers, respectively.

In case of the line strips shown in FIG. 4B, the vertex data istransferred to the vertex registers in the order of vertex registers 0,1, 0 and 1.

In cycle T16 right before the respective element data of vertex 1 istransferred to the vertex registers, input control section 12 sets GO_RCsignal to be active (at H level) and instructs rendering main processsection 11 to start processing the primitive.

In cycle T17, rendering main process section 11 starts processing theprimitive, sets RC_BUSY signal at H level, and thereby notifies inputcontrol section 12 that rendering main process section 11 is executingthe process to the primitive so as not to update vertex registers 0 and1.

Even if rendering main process section 11 is processing line 0-1,IN_READY signal is kept at H level as shown in T17 to T22 and host CPU 1continues to write the respective element data of vertex 2 to thepending registers. If all the element data of vertex 2 have been writtento the pending registers, the vertex data cannot be transferred from thepending registers to the vertex registers. Due to this, IN_READY signalis set at L level to suspend writing the next vertex data.

In cycle T24, when rendering main process section 11 finishes processingline 0-1 and is ready to process the next primitive (line 1-2), thenrendering main process section 11 sets RC_BUSY signal at L level.

In cycle T25, input control section 12 sets IN_READY signal at H levelto thereby notify host CPU 1 that the respective element data of vertex3 can be written to the pending registers, and sets GO_RC signal to beactive (at H level) to thereby instruct rendering main process section11 to start processing the next primitive (line 1-2).

In a cycle T26, input control section 12 transfers the respectiveelement data of vertex 2 held in the pending registers to vertexregisters 0. Rendering main process section 11 starts processing theprimitive and sets RC_BUSY signal at H level to thereby notify inputcontrol section 12 that rendering main process section 11 is executingthe process to the primitive so as not to update vertex registers 0 and1.

In a cycle T26 and the following, respective element data of vertex 3are sequentially written to the pending registers. Even if all theelement data of vertex 3 are written to the pending registers, inputcontrol section 12 sets IN_READY signal at L level so as not to changethe contents of the pending registers and the control data as long asrendering main process section 11 is executing the process to line 1-2,i.e., RC_BUSY signal is at H level.

In this way, lines 0-1, 1-2 and 2-3 shown in FIG. 4B are sequentiallyrendered.

FIG. 4C shows the rendering process performed to triangle fans, i.e.,shows that three triangles 0-1-2 (counterclockwise), 0-2-3 (clockwise)and 0-3-4 (counterclockwise) are sequentially rendered.

FIG. 7 is a timing chart for rendering process section 3 when renderingprocess section 3 performs a rendering process to the triangle fansshown in FIG. 4C. The processes T2 to T24 are the same as those T2 toT24 shown in FIG. 5 in the rendering process performed to the trianglestrips, they will not be repeated here. In the detailed description therendering process for the triangle fans, the primitives are such thattriangles are sequentially rendered by vertex 0 set as a base point andvertexes which are inputted following vertex 0. Due to this, after therespective element data of vertex 0 have been transferred from thepending registers to vertex registers 0, the vertex data 0 is notupdated. In case of the triangle fans, therefore, the vertex data istransferred to the vertex registers in the order of vertex registers 0,1, 2, 1 and 2.

In first cycle T1, since IN_READY signal is active (at H level),geometry process section 2 outputs control data (cr0) representing thetypes of primitives to be rendered (control data (cr0) representstriangle fans in this case) and types of element data to be used(control data (cr0) represents that coordinates, colors and texturecoordinates are all used in this case), to data bus ge_data0.

In cycle T25, input control section 12 transfers respective element dataof vertex 3 held in the pending registers to vertex registers 1. At thismoment, input control section 12 toggles SURFACE signal to H level andnotifies rendering main process section 11 that the rendering order ofthe vertexes of triangle 0-2-3 is clockwise. Rendering main processsection 11 starts processing the primitive, sets RC_BUSY signal at Hlevel, and thereby notifies input control section 12 that rendering mainprocess section 11 is executing the process to the primitive so as notto update vertex registers 0 to 2.

In cycle T25 and the following, respective element data of vertex 4 aresequentially written to the pending registers. Even if all the elementdata of vertex 4 are written to the pending registers, input controlsection 12 sets IN_READY signal at L level so as not to change thecontents of the pending registers and the control data as long asrendering main process section 11 is executing the process to triangle0-2-3, i.e., RC_BUSY signal is at H level.

When RC_BUSY signal becomes L level (in cycle T28), input controlsection 12 sets IN_READY signal at H level to thereby notify geometryprocess section 2 that respective element data of the next vertex can bewritten to the pending registers and sets GO_RC signal to be active (atH level) to thereby instruct rendering main process section 11 to startprocessing the next primitive (triangle 0-3-4) in cycle T29.

In this way, triangles 0-1-2 (counterclockwise), 0-2-3 (clockwise) and0-3-4 (counterclockwise) shown in FIG. 4C are sequentially rendered.

FIG. 4D shows the rendering process performed to points, i.e., showsthat four points 0, 1, 2 and 3 are sequentially rendered. In this pointrendering process, host CPU 1 writes vertex data to rendering processsection 3.

FIG. 8 is a timing chart for rendering process section 3 when renderingprocess section 3 performs the rendering process to the points shown inFIG. 4D. Since the processes in T2 to T8 are the same as those in T2 toT8 in the line strip rendering process shown in FIG. 6, the detaileddescription will not be repeated here. In the point rendering process,whenever respective element data of respective vertexes are transferredfrom the pending registers to vertex registers 0, input control section12 instructs rendering main process section 11 to start rendering.

In first cycle T1, since IN_READY signal is active (at H level), hostCPU 1 outputs control data (cr0) which represents the types ofprimitives to be rendered (control data (cr0) represents points in thiscase) and the types of element data to be used (control data (cr0)represents that only coordinates and colors are used and that texturecoordinates are not used in this case), to data bus cpu_data.

In cycle T9, A data a0 which is outputted to data bus cpu_data iswritten to pending register A_PR of A input section 20. In addition,host CPU 1 outputs the X coordinate value (x1) of vertex 1 to data buscpu_data. At this moment, input control section 12 sets GO_RC signal tobe active (at H level) and thereby instructs rendering main processsection 11 to start processing the primitive.

In a cycle T10, since all the to-be-used element data of vertex 0designated by control data cr0 have been inputted into element datainput sections 13 to 16 and 18 to 20, the element data of vertex 0 heldin pending registers X_PR, Y_PR, Z_PR, R_PR, G_PR, B_PR and A_PR aretransferred to X_V0, Y_V0, Z_V0, R_V0, G_V0, B_V0 and A_V0, respectivelyand rendering main process section 11 starts rendering point 0. At thesame time, X coordinate value x1 which has been outputted to data buscpu_data is written to pending register X_PR of X input section 13.Further, host CPU 1 outputs the Y coordinate value (y1) of vertex 1 todata bus cpu_data.

Thereafter, the same process is repeated. Namely, in cycle T19, theelement data of vertex 1 held in pending registers X_PR, Y_PR, Z_PR,R_PR, G_PR, B_PR, and A_PR are transferred to vertex registers X_V0Y_V0, Z_V0, R_V0, G_V0, B_V0 and A_V0, respectively and rendering mainprocess section 11 starts rendering point 1.

In cycle T28, the element data of vertex 2 held in pending registersX_PR, Y_PR, Z_PR, R_PR, G_PR, B_PR, and A_PR are transferred to vertexregisters X_V0, Y_V0, Z_V0, R_V0, G_(—V0, B)_V0 and A_V0, respectivelyand rendering main process section 11 starts rendering point 2.

In this way, points 0, 1, 2 and 3 shown in FIG. 4D are sequentiallyrendered. It is noted that only vertex registers 0 are used in the pointrendering process of rendering process section 3 in this embodiment.

In the computer graphics system, a clipping process for cutting off arendering target object and rendering the cut-off objects is sometimescarried out by freely designating a rendering region. In this clippingprocess, a clipping surface which becomes the rendering region isdesignated and geometry process section 2 determines whether or not thecoordinates of vertexes are within the rendering region. Geometryprocess section 2 newly generates intersections between the clippingsurface and the primitives and writes data to rendering process section3 so as to render new primitives.

FIG. 9A shows that triangle strips are clipped. In case of the trianglestrips, when triangles 0-1-2 and 1-2-3 are rendered, triangle 0-1-2 isin a clip-in state in which triangle 0-1-2 is in the rendering regionand triangle 0-1-2 is, therefore, kept to be rendered. On the otherhand, since triangle 1-2-3 crosses the clipping surface, it is necessaryto perform a clipping process to triangle 1-2-3. In this clippingprocess, vertex data of vertexes 4 and 5 which are intersections betweenthe clipping surface and triangle 1-2-3 are generated. In addition,there is no need to render triangle 1-2-3 in the triangle strips, andtriangles 1-2-4 and 1-4-5 are rendered using new triangle fans withvertex 1 set as a base point. FIGS. 9B to 9D will be described later.

Geometry process section 2 transfers data to rendering process section 3according to the respective element groups such as coordinate values andcolor data (texture) in parallel to consecutive coordinatetransformation and lighting processes when the data have been obtainedto some extent. In addition, since an amount of operations required inthe clipping process is large, coordinate values after the coordinatetransformation are transferred to rendering process section 3 inparallel to the determination as to whether or not a triangle strip isin a clip-in state before obtaining the result of the clipping process.Since it is necessary to change primitives if clipping occurs, thevertex data is transferred again, thereby improving the processingefficiency of the overall graphics system.

FIG. 10 is a timing chart for rendering process section 3 when thetriangle strips shown in FIG. 9A are clipped. In this timing chart,element data is divided into coordinate values and color data (texture)and the coordinate values are inputted into rendering process section 3prior to the color data (texture). Geometry process section 2 uses thecoordinate values until a lighting process is finished. The coordinatevalues and the color data (texture) are provided at intervals so thatthe color data (texture) is transferred to rendering process section 3after the coordinate values. In the timing chart shown in FIG. 10,texture coordinate values are transferred after XYZ coordinate valuesare transferred and the transfer of the color data is not shown.

Since triangle 0-1-2 is to be rendered without being clipped, the sameprocesses as those in T1 to T17 shown in FIG. 5 are carried out in T1 toT18 shown in FIG. 10 and respective element data of vertexes 0, 1 and 2are written to the pending registers and the vertex registers. In cycleT19 and the following, rendering main process section 11 startsrendering triangle 0-1-2.

In cycles T21 and T22, rendering process section 3 receives thecoordinate values x3, y3 and z3 of vertex 3 and coordinate values x3, y3and z3 are written to the pending registers. On the other hand, ifdetecting that vertex 3 is in a clip-out state, geometry process section2 outputs control data cr1 to data bus ge_data0 so as to render newtriangle fans in cycle T22. In response to the next clock, control datacr1 is written to input control section 12.

Since a rendering process is performed to triangle 0-1-2, renderingprocess section 11 sets IN_READY signal at L level and outputs IN_READYsignal to geometry process section 2 so as to suspend updating thecontrol data. In cycle T24, when rendering main process section 11completes processing triangle 0-1-2, rendering main process section 11sets IN_READY signal at H level and accepts data write from geometryprocess section 2.

Since control data cr1 is inputted, input control section 12 ignores thecoordinate values of vertex 3 written to the pending registers and waitsfor a new vertex data string to be inputted.

In cycles T25 to T42, vertex data of vertexes 1, 2 and 4 are written tovertex registers 0, 1 and 2, respectively. In cycle T42 and thefollowing, a rendering process to triangle fan 1-2-4 is started. Incycles T43 to T50, vertex data of vertex 5 are written to vertexregisters 1. In cycle T50 and the following, a rendering process to atriangle fan 1-4-5 is started.

In this way, triangle 0-1-2 is rendered, and then a rectangle 1-2-4-5after triangle 1-2-3 is clipped is rendered.

FIG. 9B shows that points are clipped. In the clipping process toprimitives which are points, it is unnecessary to change primitives evenif clipping occurs. It, therefore, suffices to perform a process fordetermining whether or not vertexes are to be rendered.

FIG. 11 is a timing chart for rendering process section 3 when thepoints shown in FIG. 9B are clipped. Since vertex 0 is in a clip-instate, the same process as those in T1 to T10 shown in FIG. 8 arecarried out and a rendering process to vertex 0 starts from cycle T8. Itis noted that in the timing chart shown in FIG. 11, respective elementdata are received from two data buses ge_data0 and ge_data1 and writtento the pending registers.

In cycles T9 to T1, before it is determined whether or not coordinatevalues x1, y1 and z1 of vertex 1 are in clip-in states, geometry processsection 2 outputs these coordinate values and writes them to the pendingregisters. However, no color data is transferred since vertex 1 is in aclip-out state. In cycles T12 and T13, coordinate values x2, y2 and z2of next vertex 2 are inputted.

Since the same element data as those already written to the pendingregisters are inputted before all the element data of vertex 1 areobtained, input control section 12 recognizes that new vertex data isinputted and ignores the element data of vertex 1 written to the pendingregisters. In cycles T13 and T14, coordinate values x2, y2 and z2 of newvertex 2 are written to the pending registers.

Since vertex 2 is in a clip-in state, color data r2, g2, b2 and a2 areoutputted from geometry process section 2 and written to the pendingregisters in cycles 15-17. In cycle T18, all the element data of vertex2 are obtained. However, since RC_BUSY signal is at H level, data writeto vertex registers 0 is suspended until rendering main process section11 completes processing vertex 0.

In cycle T19, when RC_BUSY signal becomes L level, input control section12 sets GO_RC signal to be active (at H level) and instructs renderingmain process section 11 to start processing vertex 2 (in cycle T20).

In cycle T21, the respective element data of vertex 2 written to thepending registers are transferred to the vertex registers. At the sametime, rendering main process section 11 starts processing vertex 2, setsRC_BUSY signal at H level and thereby notifies input control section 12that rendering main process section 11 is executing the process to theprimitive so as not to update vertex registers 0.

Even if rendering main process section 11 is processing vertex 2,IN_READY signal is kept at H level as shown in T21 to T22. In addition,before it is determined whether or not coordinate values x3, y3 and z3of vertex 3 are in clip-in states, geometry process section 2 outputsthese coordinate values and writes the outputted coordinate values tothe pending registers. However, since vertex 3 is in a clip-out state,no color data is transferred and, in cycles T23 and T24, coordinatevalues x4, y4 and z4 of next vertex 4 are inputted.

Since the same element data as those already written to the pendingregisters are inputted before all the element data of vertex 3 areobtained, input control section 12 recognizes that new vertex data isinputted and ignores the element data of vertex 3 written to the pendingregisters. In cycles T27 and T28, color data r4, g4, b4 and a4 arewritten to the pending registers. In a cycle T31, rendering main processsection 11 starts rendering vertex 4.

In this way, points 0, 2 and 4 in clip-in states are rendered amongpoints 0 to 4 shown in FIG. 9B.

As described so far, according to the rendering process apparatus inthis embodiment, only if host CPU 1 and geometry process section 2designate the types of to-be-rendered primitives such as points, linesor triangles and the types of to-be-used element data and write thevertex data to the rendering process apparatus, the vertex data isautomatically transferred from the pending registers to the vertexregisters and rendering main process section 11 automatically starts.Therefore, it is unnecessary for host CPU 1 and geometry process section2 to manage the vertex numbers and start of rendering, thereby reducingprocessing load.

Furthermore, since the order of writing element data for one vertex datamay be optionally set, the structure of the database and the processflow of geometry process section 2 are not restricted if host CPU 1inputs vertex data into the rendering process apparatus, thereby makingit possible to improve the processing performance of the overallgraphics system.

Moreover, if the same element data is inputted into the renderingprocess apparatus or the control data is updated before all thedesignated data are obtained, the rendering process apparatus recognizesthat a new vertex data string or a new primitive is inputted, therebymaking it possible to accelerate the processing speed of the clippingprocess.

Second Embodiment

According to the rendering process apparatus in the first embodiment,vertex registers 0 and 1 are always used for line rendering and vertexregisters 0 are always used for point rendering. According to arendering process apparatus in the second embodiment, vertex registers 0to 2 are used even for line rendering and vertex registers 0 to 2 areused for point rendering, as well.

FIG. 9C shows line strips rendered by the rendering process apparatus inthe second embodiment according to the present invention. Four lines0-1, 1-2, 2-3 and 3-4 are sequentially rendered.

FIG. 12 is a timing chart for rendering process apparatus when linestrips are rendered. V_SEL signal is a signal which is outputted frominput control section 12 to rendering main process section 11 and a codedesignating a combination of to-be-used vertex registers is outputted.

In first cycle T1, since IN_READY signal is active (at H level),geometry process section 2 outputs control data (cr0) representing thetypes of primitives to be rendered (control data (cr0) represents linestrips in this case) and the types of element data to be used (controldata (cr0) represents that only coordinates and colors are used and thattexture coordinates are not used in this case), to data bus ge_data0.

In cycle T2, input control section 12 inputs control data outputted todata bus ge_data0. In addition, geometry process section 2 outputs Xcoordinate value (x0) and Y coordinate value (y0) of vertex 0 to databuses ge_data0 and ge_data1, respectively.

In cycle T3, X coordinate value x0 and Y coordinate value y0 outputtedto data buses ge_data0 and ge_data1, respectively are written to pendingregister X_PR of X input section 13 and pending register Y_PR of Y inputsection 18, respectively. In addition, geometry process section 2outputs Z coordinate value (z0) of vertex 0 to data bus ge_data0.

In cycle T4, Z coordinate value z0 outputted to data bus ge_data0 iswritten to pending register Z_PR of Z input section 14. In addition, Rdata (r0) and G data (g0) on vertex 0 are outputted to data busesge_data0 and ge_data1, respectively.

In cycle T5, R data r0 and G data g0 outputted to data buses ge_data0and ge_data1, respectively are written to pending register R_PR of Rinput section 15 and pending register G_PR of G input section 19,respectively. In addition, input control section 2 outputs B data (b0)and A data (a0) on vertex 0 to data buses ge_data0 and ge_data1,respectively.

In cycle T6, B data b0 and A data a0 outputted to data buses ge_data0and ge_data1, respectively are written to pending register B_PR of Binput section 16 and pending register A_PR of A input section 20,respectively. In addition, geometry process section 2 outputs Xcoordinate value (x1) and Y coordinate value (y1) of vertex 1 to databuses ge_data0 and ge_data1, respectively.

In cycle T7, since all the to-be-used element data of vertex 0designated by control data cr0 have been inputted into element inputsections 13 to 16 and 18 to 20, the element data of vertex 0 held inpending registers X_PR, Y_PR, Z_PR, R_PR, G_PR, B_PR and A_PR aretransferred to vertex registers X_V0, Y_V0, Z_V0, R_V0, G_V0, B_V0 andA_V0, respectively. At the same time, X coordinate value x1 and Ycoordinate value y1 of vertex 1 outputted to data buses ge_data0 andge_data1 are written to pending register X_PR of X input section 13 andpending register Y_PR of Y input section 18, respectively. Geometryprocess section 2 outputs Z coordinate value z1 of vertex 1 to data busge_data0.

Thereafter, the same process is repeated. Namely, in cycle T11, elementdata of vertex 1 held in pending registers X_PR, Y_PR, Z_PR, R_PR, G_PR,B_PR and A_PR are transferred to vertex registers X_V1, Y_V1, Z_V1,R_V1, G_V1, B_V₁ and A_V1, respectively.

In cycle T10 right before the respective element data of vertex 1 aretransferred to vertex registers 1, input control section 12 sets GO_RCsignal to be active (at H level) and thereby instructs rendering mainprocess section 11 to start processing the primitive.

In cycle T11, since the respective element data of vertexes 0 and 1 havebeen transferred to vertex registers 0 and 1, input control section 12outputs a code indicating that to-be-used vertex registers are vertexregisters 0 and 1, to V_SEL signal. Rendering main process section 11starts processing the primitive in accordance with the vertex datawritten to vertex registers 0 and 1, sets RC_BUSY signal at H level andthereby notifies input control section 12 that rendering main processsection 11 is executing the process to the primitive so as not to updatevertex registers 0 and 1.

Even if rendering main process section 11 is processing triangle 0-1-2,vertex registers 2 are not used. Due to this, as shown in cycles T10 toT14, IN_READY signal is kept at H level and geometry process section 2continues to write respective element data of vertex 2 to the pendingregisters. In cycle T15, the element data of vertex 2 held in pendingregisters X_PR, Y_PR, Z_PR, R_PR, G_PR, B_PR and A_PR are transferred tovertex registers X_V2, Y_V2, Z_V2, R_V2, G_V2, B_V2 and A_V2,respectively.

As shown in cycles T14 to T17, IN_READY signal is kept at H level andgeometry process section 2 continues to write respective element data ofvertex 3 to the pending registers. If all the element data of vertex 3have been written to the pending registers, the vertex data cannot betransferred from the pending registers to vertex registers 0. Due tothis, IN_READY signal is set at L level to suspend writing the nextvertex data.

In cycle T19, when rendering main process section 11 finishes processingline 0-1 and is ready to process the next primitive (line 1-2),rendering main process section 11 sets RC_BUSY signal at L level.

In cycle T20, input control section 12 sets IN_READY signal at H levelto thereby notify geometry process section 2 that respective elementdata of vertex 4 can be written to the pending registers, and sets GO_RCsignal to be active (at H level) to thereby instruct rendering mainprocess section 11 to start processing the next primitive (line 1-2).

In cycle T21, input control section 12 transfers the respective elementdata of vertex 3 held in the pending registers to vertex registers 0. Atthis moment, since the respective element data of vertexes 1 and 2 havebeen transferred to vertex registers 1 and 2, input control section 12outputs a code indicating that to-be-used vertex registers are vertexregisters 1 and 2, to V_SEL signal. Rendering main process section 11starts processing the primitive in accordance with the vertex datawritten to vertex registers 1 and 2, and sets RC_BUSY signal at H levelto thereby notify input control section 12 that rendering main processsection 11 is executing the process to the primitive so as not to updatevertex registers 1 and 2.

Thereafter, as in the case of the above, the next primitive (line 2-3)is rendered in accordance with the respective vertex data of vertexes 2and 3 transferred to vertex registers 2 and 0, and the next primitive(line 3-4) is rendered in accordance with the respective vertex data ofvertexes 3 and 4 transferred to vertex registers 0 and 1.

In this way, lines 0-1, 1-2, 2-3 and 3-4 shown in FIG. 9C aresequentially rendered.

FIG. 9D shows points which are primitives rendered by the renderingprocess apparatus in the second embodiment according to the presentinvention. Five points 0, 1, 2, 3 and 4 are sequentially rendered.

FIG. 13 is a timing chart for rendering process apparatus in the secondembodiment according to the present invention when rendering processapparatus renders the points shown in FIG. 9D. V_SEL signal is a signalwhich is outputted from input control section 12 to rendering mainprocess section 11 and a code designating to-be-used vertex registers isoutputted.

In first cycle T1, since IN_READY signal is active (at H level),geometry process section 2 outputs control data (cr0) representing thetypes of primitives to be rendered (control data (cr0) represents pointsin this case) and the types of element data to be used (control data(cr0) represents that only coordinates and colors are used and thattexture coordinates are not used in this case), to data bus ge_data0.

In cycle T2, input control section 12 inputs the control data outputtedto data bus ge_data0. In addition, geometry process section 2 outputs Xcoordinate value (x0) and Y coordinate value y0 of vertex 0 to databuses ge_data0 and ge_data1, respectively.

In cycle T3, X coordinate value x0 and Y coordinate value y0 outputtedto data buses ge_data0 and ge_data1, respectively are written to pendingregister X_PR of X input section 13 and pending register Y_PR of Y inputsection 18, respectively. In addition, geometry process section 2outputs Z coordinate value (z0) of vertex 0 to data bus ge_data0.

In cycle T4, Z coordinate value z0 outputted to data bus ge_data0 iswritten to pending register Z_PR of Z input section 14. In addition,geometry process section 2 outputs R data (r0) and G data (g0) of vertex0 to data buses ge_data0 and ge_data1, respectively.

In cycle T5, R data r0 and G data g0 outputted to data buses ge_data0and ge_data1, respectively are written to pending register R_PR of Rinput section 15 and pending register G_PR of G input section 19,respectively. In addition, geometry process section 2 outputs B data(b0) and A data (a0) of vertex 0 to data buses ge_data0 and ge_data1,respectively.

In cycle T6, B data b0 and A data a0 outputted to data buses ge_data0and ge_data1, respectively are written to pending register B_PR of Binput section 16 and pending register A_PR of A input section 20,respectively. At this moment, input control section 12 sets GO_RC signalto be active (at H level) to thereby instruct rendering main processsection 11 to start processing the primitive. In addition, geometryprocess section 2 outputs X coordinate value (x1) and Y coordinate value(y1) of vertex 1 to data buses ge_data0 and ge_data1, respectively.

In cycle T7, since the respective element data of vertex 0 have beentransferred to vertex registers 0, input control section 12 outputs acode indicating that to-be-used vertex registers are vertex registers 0,to V_SEL signal. Rendering main process section 11 starts processing theprimitive in accordance with the vertex data written to vertex registers0, sets RC_BUSY signal at H level and thereby notifies input controlsection 12 that rendering main process section 11 is executing theprocess to the primitive so as not to update vertex registers 0.

Even if rendering main process section 11 is processing vertex 0, vertexregisters 1 and 2 are not used. Due to this, as shown in cycles T7 toT15, IN_READY signal is kept at H level and geometry process section 2continues to write respective data of vertexes 1 and 2 to the pendingregisters. In cycle T11, the element data of vertex 1 held in thepending registers are transferred to vertex registers 1, respectively.Further, in cycle T15, the element data of vertex 2 held in the pendingregisters are transferred to vertex registers 2, respectively.

As shown in cycles T15 to T17, IN_READY signal is kept at H level andgeometry process section 2 continues to write respective element data ofvertex 3 to the pending registers. It is noted that if all the elementdata of vertex 3 have been written to the pending registers, the vertexdata cannot be transferred from the pending registers to vertexregisters 0. Due to this, IN_READY signal is set at L level to suspendwriting the next vertex data.

In cycle T19, when rendering main process section 11 finishes processingvertex 0 and is ready to process the next primitive (vertex 1),rendering main process section 11 sets RC_BUSY signal at L level.

In cycle T20, input control section 12 sets IN_READY signal at H levelto thereby notify geometry process section 2 that respective elementdata of vertex 4 can be written to the pending registers, and sets GO_RCsignal to be active (at H level) to thereby instruct rendering mainprocess section 11 to start processing the next primitive (vertex 1).

In cycle T21, input control section 12 transfers the respective elementdata of vertex 3 held in the pending registers to vertex registers 0. Atthis moment, since the respective element data of vertex 1 have beentransferred to vertex registers 1, a code indicating that to-be-usedvertex registers are vertex registers 1 is outputted to V_SEL signal.Rendering main process section 11 starts processing the primitive inaccordance with the vertex data written to vertex registers 1 and setsRC_BUSY signal at H level to thereby notify input control section 12that rendering main process section 11 is executing the process to theprimitive so as not to update vertex registers 1.

Thereafter, as in the case of the above, the next primitive (vertex 2)is rendered in accordance with the respective element data of vertex 2transferred to vertex registers 2, the next primitive (vertex 3) isrendered in accordance with the respective element data of vertex 3transferred to vertex registers 0 and the next primitive (vertex 4) isrendered in accordance with the respective element data of vertex 4transferred to vertex registers 1.

In this way, the vertexes 0, 1, 2, 3 and 4 shown in FIG. 9D aresequentially rendered.

As described so far, according to the rendering process apparatus inthis embodiment, since the vertex data in the pending registers aresequentially transferred to the vertex registers which rendering mainprocess section 11 does not use, it is possible to improve data transferefficiency for transferring data from host CPU 1 or geometry processsection 2 to rendering process section 3.

Further, even if host CPU1 and geometry process section 2 do not managethe vertex numbers, input control section 12 outputs V_SEL signalindicating the vertex registers to be used by rendering main processsection 11, to rendering main process section 11. It is, therefore,possible to reduce processing load imposed on host CPU 1 and geometryprocess section 2 and to thereby accelerate the processing speed.

Third Embodiment

A rendering process apparatus in the third embodiment according to thepresent invention differs from the rendering process apparatus in thefirst embodiment shown in FIGS. 2 and 3 in the configurations of elementdata input sections 13 to 21. Therefore, the detailed description ofoverlapped configurations and functions will not be repeated here.

FIG. 14 is a block diagram showing the schematic configuration of anelement data input section in the third embodiment according to thepresent invention. This element data input section corresponds to colordata R, G, B and A. If it is assumed that the word length of input datais 32 bits, the 32 bits are divided in the units of eight bits andallocated to four elements of color data, respectively. This elementdata input section is connected to data bus cpu_data connected to hostCPU 1 and data bus ge_data0 connected to geometry process section 2.

The element data input section includes a selector 40 which selects oneof data buses ge_data0 and cpu_data, pending registers R_PR 41, G_PR 42,B_PR 43 and A_PR 44 which temporarily hold data received from selector40, vertex registers R_V0 to R_V2 (45 to 47) to which the data held inpending register R_PR 41 is transferred, vertex registers G_V0 to G_V2(48 to 50) to which the data held in pending register G_PR 42 istransferred, vertex registers B_V0 to B_V2 (51 to 53) to which the dataheld in pending register B_PR 43 is transferred, and vertex registersA_V0 to A_V2 (54 to 56) to which the data held in pending register A_PR44 is transferred.

According to this configuration, color data (four element data) topending registers 41 to 44 are written by one data transfer. Thetransfer of vertex data from pending registers 41 to 44 to vertexregisters 45 to 56 and the start of rendering main process section 11are the same as those described in the first and second embodiments.While only the color data is mentioned herein, the input sections forXYZ coordinate values and texture coordinate values can be constitutedin the same manner as that shown in FIG. 14.

As stated so far, according to the rendering process apparatus in thethird embodiment according to the present invention, a part of elementdata which may be low in accuracy can be transferred at one time bypacking a plurality of element data into one data word length, therebymaking it possible to improve efficiency for transferring data to therendering process apparatus.

Fourth Embodiment

A rendering process apparatus in the fourth embodiment according to thepresent invention differs from that in the first embodiment shown inFIGS. 2 and 3 in the configurations of element data input sections 13 to21. Therefore, overlapped configurations and functions will not berepeatedly described herein in detail.

FIG. 15 is a block diagram showing the schematic configuration of anelement data input section in the fourth embodiment according to thepresent invention. This element data input section includes a pendingregister 31 which temporarily holds data outputted to data bus ge_data0(ge_data1) or cpu_data, an ALU (Arithmetic and Logic Unit) 57 whichexecutes an arithmetic operation to the data held in pending register31, and vertex registers V0 to V2 (32 to 34) to which the data which hasbeen subjected to the arithmetic operation by ALU 57 is transferred.

ALU 57 has a function of addition-subtraction, clamp, data formatconversion or the like, performs an arithmetic operation during thetransfer of the data from pending register 31 to vertex registers V0 toV2 (32 to 34). For example, ALU 57 can perform an addition-subtractionoperation of an offset value on a coordinate value and two-dimensionallyshift the display position of a rendering target on display section 4 ifALU 57 has the function of the addition-subtraction.

If ALU 57 has a clamp function, ALU 57 sets, for example, an upper limitvalue and a lower limit value in advance, transfers the value of pendingregister 31 to one of vertex registers 32 to 34 as it is if the valuethereof is within a range between the upper and lower limit values, andtransfers a boundary value to one of vertex registers 32 to 34 if thevalue of pending register 31 exceeds the range.

In a color data arithmetic operation in the lighting calculation ofgeometry process section 2, since color components out of a plurality oflight sources are accumulated, an operation result sometimes goes beyonda designated data region. In this case, geometry process section 2performs a process for replacing the operation result by a clamp value.By allowing this process to be performed within the element data inputsection, it is possible to perform this clamp process in parallel todata transfer.

Further, if ALU 57 has a data format conversion function and the dataformat of host CPU 1 or geometry process section 2 differs from that ofrendering process section 3, it is possible to perform the conversion ofa floating-point numeric value into a fixed-point numeric value, theconversion of a fixed-point numeric value into a floating-point numericvalue, the change of the point position of a fixed-point numeric valueand the like.

According to the conventional graphic system, the host CPU or thegeometry process section converts the data format of data into that ofthe rendering process section. By giving ALU 57 a data formationconversion function, it is possible to perform data format conversion inparallel to data transfer.

As stated so far, according to the rendering process apparatus in thisembodiment, by providing ALU 57 between pending register 31 and vertexregisters 32 to 34, it is possible to allow the element data inputsection to perform the process which has been conventionally performedby host CPU 1, geometry process section 2 or rendering main processsection 11, thereby making it possible to reduce processing load imposedon host CPU 1, geometry process section 2 or rendering main processsection 11 and to thereby improve the processing speed of the overallgraphics system.

Fifth Embodiment

A rendering process apparatus in the fifth embodiment according to thepresent invention differs from that in the first embodiment shown inFIGS. 2 and 3 in the configurations of X input section 13 and Y inputsection 18. Therefore, overlapped configurations and functions will notbe repeatedly described herein in detail.

FIG. 16 is a block diagram showing the schematic configurations of the Xinput section and the Y input section (to be referred to as “XY inputsection” hereinafter). This XY input section includes a selector 61which selects one of data buses ge_data0 and cpu_data, a pendingregister X_PR 62 which temporarily holds an X coordinate value receivedfrom selector 61, vertex registers X_V0 to X_V2 (63 to 66) to which theX coordinate value held in pending register X_PR 62 is transferred, an Xcoordinate comparison section 66 which compares the X coordinate valueheld in pending registers X_PR 62 with that held in vertex registersX_V0 to X_V2 (63 to 66), a selector 67 which selects one of data busesge_data1 and cpu_data, a pending register Y_PR 68 which temporarilyholds a Y coordinate value received from selector 67, vertex registersY_V0 to Y_V2 (69 to 71) to which the Y coordinate value held in pendingregister Y_PR 68 is transferred, a Y coordinate comparison section 72which compares the Y coordinate value held in pending registers Y_PR 68with that held in vertex registers Y_V0 to Y_V2 (69 to 71), and an inputcontrol section 73 which controls the input of data from host CPU 1 andgeometry process section 2.

X coordinate comparison section 66 outputs an X coordinate sortingresult code to rendering main process section 11 and outputs an Xcoordinate consistency code to input control section 73. In addition, Ycoordinate comparison section 72 outputs a Y coordinate sorting resultcode to rendering main process section 11 and outputs a Y coordinateconsistency code to input control section 73.

FIG. 17 is a view for explaining the configuration of each of Xcoordinate comparison section 66 and Y coordinate comparison section 72(to be referred to as “coordinate comparison section” hereinafter). Thecoordinate comparison section includes selectors 74 and 75 each of whichselects one of the coordinate values held in vertex registers V0 to V2(X_V0 to X_V2 or Y_V0 to Y_V2) and pending register PR (X_PR or Y_PR), acomparator 76 which compares the coordinate value outputted fromselector 74 with that outputted from selector 75, comparison resultregisters 77 to 79 each of which holds the comparison result ofcomparator 76, a sorting section 80 which performs sorting in accordancewith the comparison results held in comparison result registers 77 to79, a consistency determination section 81 which performs a consistencydetermination in accordance with the comparison results held incomparison result registers 77 to 79, and a sorting result code register82 which holds a sorting result code from sorting section 80.

Selectors 74 and 75 select two out of the four coordinate values held invertex registers V0 to V2 and pending register PR. Comparator 76compares the two coordinate values selected by selectors 74 and 75 witheach other, and outputs one bit representing “GreaterThan” and one bitrepresenting “LessThan”, i.e., two bits. The comparison result ofcomparator 76 is stored in one of V0V1 comparison result register 77,V1V2 comparison result register 78 and V2V0 comparison result register79 depending on a combination of the compared vertex registers. Thecoordinate value held in pending register PR is inputted into selectors74 and 75 for the following reason. If the vertex data is held inpending register PR, the vertex data can be processed before beingtransferred to one of vertex registers V0 to V2 and it is therebypossible to improve processing speed.

Sorting section 80 generates a sorting result code in accordance withthe comparison result held in each of three comparison result registers77 to 79, and stores the generated sorting result code in sorting resultcode register 82. In addition, consistency determination section 81outputs a consistency code, indicating whether or not the comparisonresult held in comparison result registers 77 to 79 is consistent withone another, by one bit per combination of the comparison resultregisters, i.e., combination of vertexes.

FIG. 18 shows one example of sorting result codes outputted from sortingsection 80. For example, if the magnitude relationship among thecoordinate values satisfies “V0≦V1≦V2”, sorting section 80 outputs asorting result code “000”.

FIG. 19 shows triangle strips rendered by the rendering processapparatus in the fifth embodiment according to the present invention. Asshown in FIG. 19, if three triangles 0-1-2, 1-2-3 and 2-3-4 are to berendered, vertexes 1 and 3 have exactly the same coordinate and triangle1-2-3, therefore, becomes a straight line, making it unnecessary torender triangle 1-2-3. Accordingly, it suffices to instruct renderingmain process section 11 to render only two triangles 0-1-2 and 2-3-4.

FIG. 20 is a timing chart for rendering process section 3 if thetriangle strips shown in FIG. 19 are rendered. Since X coordinatecomparison section 66 and Y coordinate comparison section 72 are thesame in operation, the outputs of comparator 76 and comparison resultregisters 77 to 79 of X coordinate comparison section 66 are not shownin the timing chart shown in FIG. 20.

In first cycle T1, since IN_READY signal is active (at H level),geometry process section 2 outputs control data (cr0) representing thetypes of primitives to be rendered (control data cr0 represents trianglestrips in this case) and the types of element data to be used (controldata cr0 represents that coordinates and texture coordinates are used inthis case), to data bus ge_data0.

In cycle T2, input control section 12 inputs the control data outputtedto data bus ge_data0. In addition, in cycles T2 to T5, element data x0,y0, z0, u0 and v0 of vertex 0 are written to pending registers X_PR,Y_PR, Z_PR, U_PR and V_PR, respectively. At this moment, since there arenot coordinates of vertexes to be compared, X coordinate comparisonsection 66 and Y coordinate comparison section 72 do not operate.

In cycle T6, the element data of vertex 0 held in pending registersX_PR, Y_PR, Z_PR, U_PR and V_PR in which all the to-be-used element dataof vertex 0 designated by control data cr0 have been completed aretransferred to vertex registers X_V0, Y_V0, Z_V0, U_V0 and V_V0,respectively. At this moment, since the Y coordinate value of vertex 1has been already held in the pending register, comparator 76 of Ycoordinate comparison section 72 outputs a comparison result betweencoordinate values y0 and y1.

In cycle T7, the comparison result between y0 and y1 is written to V0V1comparison result register 77.

In cycle T9, element data of vertex 1 held in pending registers X_PR,Y_PR, Z_PR, U_PR and V_PR are transferred to vertex registers X_V1,Y_V1, Z_V1, U_V1 and V_V1, respectively. At this moment, since the Ycoordinate value of vertex 2 has been already held in the pendingregister, comparator 76 of Y coordinate comparison section 72 outputs acomparison result between coordinate values y1 and y2.

In cycle T10, the comparison result between y1 and y2 is written to V1V2comparison result register 78. At this moment, comparator 76 of Ycoordinate comparison section 72 outputs a comparison result betweencoordinate values y2 and y0.

In cycle T11, the comparison result between y2 and y0 is written to V2V0comparison result register 79. At this moment, since the comparisonresults have been written to all of comparison result registers 77 to79, respectively, sorting section 80 and consistency determinationsection 81 output a sorting result code and a consistency code,respectively. Since there are neither consistent X coordinate values norconsistent Y coordinate values, “000” is outputted as consistency codesfor the X and Y coordinate values, respectively. At this moment, sinceit is necessary for rendering main process section 11 to render triangle0-1-2, input control section 12 sets GO_RC signal to be active (at Hlevel) and thereby instructs rendering main process section 11 to startprocessing the primitive (triangle 0-1-2).

In cycle T12, rendering main process section 11 starts renderingtriangle 0-1-2. Rendering main process section 11 performs a rasterprocessing to obtain the pixel values of triangle 0-1-2 on displaysection 4. Rendering main process section 11 selects the start point andthe end point of the raster process from the vertex registers inaccordance with the sorting result code. In addition, the sorting resultcode is written to sorting result code register 82. Since the magnituderelationship satisfies y0≦y2≦y1, Y coordinate comparison section 72outputs “001” as the Y coordinate sorting result. Further, since themagnitude relationship satisfies x0≦x1≦x2, X coordinate comparisonsection 66 outputs “000” as the X coordinate sorting result.

Furthermore, in cycle T12, coordinate values x3 and y3 of vertex 3 arewritten to pending registers X_PR and Y_PR, respectively. At thismoment, comparator 76 of Y coordinate comparison section 72 comparescoordinate values y2 and y3.

In cycle T13, the comparison result between y2 an y3 is written to V2V0comparison result register 79. At this moment, comparator 76 of Ycoordinate comparison section 72 compares coordinate values y3 and y1.

In cycle T14, the comparison result between y3 and y1 is written to V0V1comparison result register 77. Since y3 is consistent with y1,consistency determination section 81 sets a bit corresponding to V0V1comparison result register 77 at 1 and outputs “001” as the consistencycode. In addition, the consistency code outputted from X coordinatecomparison section 66 is “001”, as well.

In cycle T16, rendering main process section 11 finishes the renderingprocess to triangle 0-1-2 and outputs L-level on RC_BUSY signal.However, since input control section 73 receives consistency code “001”from each of X coordinate comparison section 66 and Y coordinatecomparison section 72, input control section 73 determines that triangle1-2-3 is a straight line and does not instruct rendering main processsection 11 to start rendering triangle 1-2-3.

In cycle T18, coordinate values x4 and y4 of vertex 4 are written topending registers X_PR and Y_PR, respectively. At this moment,comparator 76 of Y coordinate comparison section 72 compares coordinatevalues y3 and y4.

In cycle T19, the comparison result between y3 and y4 is written to V0V1comparison result register 77. At this moment, since y3 is notconsistent with y4, consistency determination section 81 sets a bitcorresponding to V0V1 comparison result register 77 at 0 and outputs“000” as the consistency code. A consistency code outputted from Xcoordinate comparison section 66 is “000”, as well. In addition,comparator 76 of Y coordinate comparison section 72 compares coordinatevalues y4 and y2.

In cycle T20, the comparison result between y4 and y2 is written to V1V2comparison result register 78. At this moment, since y4 is notconsistent with y2, consistency determination section 81 outputs “000”as the consistency code. In addition, a consistency code outputted fromX coordinate comparison section 66 remains “000”, as well.

In cycle T20, since receiving consistency code “000” from each of Xcoordinate comparison section 66 and Y coordinate comparison section 72,input control section 73 determines that it is necessary to rendertriangle 2-3-4, sets GO_RC signal at H level and thereby instructsrendering main process section 11 to start rendering triangle 2-3-4. Itis noted that in cycle T18, “100” is outputted as a Y coordinate sortingresult. In addition, in cycle T21, “101” is outputted as a Y coordinatesorting result and “001” is outputted as an X coordinate sorting result.

In this way, the rendering process are performed only to triangles 0-1-2and 2-3-4 shown in FIG. 19 and the rendering process for triangle 1-2-3is not performed.

As stated so far, according to the rendering process apparatus in thisembodiment, since the coordinate values held in the pending registersand the vertex registers are compared to make a consistencydetermination, it is possible to prevent the rendering process frombeing performed to an unnecessary primitive and to thereby improve theprocessing speed of the overall graphics system.

Further, since the coordinate values held in the pending registers andthe vertex registers are compared to perform a sorting process, it ispossible to perform the sorting process in parallel to the write of databy host CPU 1 or geometry process section 2 and to thereby reduceprocessing load imposed on rendering main process section 11.

Sixth Embodiment

A rendering process apparatus in the sixth embodiment according to thepresent invention differs from that in the first embodiment shown inFIGS. 2 and 3 in the configurations of element data input sections 13 to21. Therefore, overlapped configurations and functions will not berepeatedly described herein in detail.

FIG. 21 is a block diagram showing the schematic configuration of eachof element data input sections 13 to 21 in the sixth embodimentaccording to the present invention. This element data input sectionincludes a pending register PR 31 which temporarily holds element dataoutputted to one of data buses ge_data0 (ge_data1) and cpu_data, vertexregisters V0 to V2 (32 to 34) to which the element data held in pendingregister PR31 is transferred, selectors 90 and 91 each of which selectsone of the element data held in pending register PR31 and vertexregisters V0 to V2 (32 to 34) and which outputs the selected elementdata, a subtracter 92 which subtracts the element data received fromselector 91 from the element data received from selector 90,differential value registers 93 to 95 each of which holds thesubtraction result of subtracter 92, and selectors 96 to 98 which selectone of the subtraction result outputted from subtracter 92 and thesubtraction results held in differential value registers 93 to 95 andwhich output the selected subtraction result, respectively.

Selectors 90 and 91 select two from the four element data held in vertexregisters V0 to V2 (32 to 34) and pending register PR31, respectively.Subtracter 92 calculates the difference between the two element dataselected by selectors 90 and 91, respectively, and stores the calculateddifference in one of differential value registers V0-V1 (93), V1-V2 (94)and V2-V0 (95) depending on a combination of the vertex registers forwhich the difference is calculated.

FIG. 22 is a timing chart for rendering process section 3 in thisembodiment when the triangle strips shown in FIG. 4A are rendered. Thistiming chart shows a case where only XYZ coordinates and texturecoordinates are used as the types of element data to be used.

In the timing chart shown in FIG. 22, since the timing other than thatof subtracter 92, differential value register V0-V1 (93), differentialvalue register V1-V2 (94) and differential value register V2-V0 (94) isthe same as that for rendering process section 3 in the first embodimentshown in FIG. 5, it will not be repeatedly described herein in detail.While a case where subtracter 92 performs subtraction for the Ucomponents of the texture coordinates will be described herein, the samething is true for the other operations.

In cycle T6, when all the element data of vertex 0 have been written tothe pending registers, these element data are transferred to vertexregisters 0, respectively. At this moment, two U components are notobtained yet for subtraction, subtracter 92 does not performsubtraction.

In cycle T8, when the U coordinate value u1 of vertex 1 is written topending register PR, subtracter 92 calculates the difference between Ucoordinate value u0 held in vertex register V0 and U coordinate value u1held in pending register PR, and outputs the calculated difference todifferential value register V0−V1 (93). In cycle T9, differential valueu0−u1 outputted from subtracter 92 is transferred to differentialregister V0−V1 (93).

In cycle T11, when the U coordinate value u2 of vertex 2 is written topending register PR, subtracter 92 calculates the difference between Ucoordinate value u1 of vertex 1 held in vertex register V1 and Ucoordinate value u2 held in pending register PR and outputs thecalculated difference to differential value register V1−V2 (94). At thismoment, input control section 12 sets GO_RC signal to be active (at Hlevel) and thereby instructs rendering main process section 11 to startprocessing the primitive.

In cycle T12, differential value u1−u2 outputted from subtracter 92 istransferred to differential value register V1−V2 (94). At this moment,subtracter 92 calculates the difference between U coordinate value u2 ofvertex 2 held in vertex register V2 and U coordinate value u0 held invertex register V0 and outputs the calculated difference to differentialvalue register V2−V0 (95). Selector 98 selects the output fromsubtracter 92 and outputs the selected output to rendering main processsection 11, by which time all the three differential values for triangle0-1-2 have been inputted into rendering main process section 11.

Rendering main process section 11 requires data differential valuesamong the vertexes to render the primitive. Rendering main processsection 11, therefore, interpolates the positions and values of pixelsamong the vertexes and in the primitive region based on threedifferential values V0−V1 (u0−u1), V1−V2 (u1−u2) and V2−V0 (u2−u0)outputted from the element data input sections.

In cycle T14, U coordinate value u3 of vertex 3 is written to pendingregister V_PR. Since rendering main process section 11 is using thedifferential value data, differential value registers 93 to 95 are notupdated.

In cycle T16, when rendering main process section 11 completes with therendering process to triangle 0-1-2, rendering main process section 11outputs L-level on RC_BUSY signal. In cycle T17, input control section12 sets GO_RC signal at H level to thereby instruct rendering mainprocess section 11 to start rendering triangle 1-2-3, and subtracter 92calculates the differential value between U coordinate value u2 held invertex register V2 and U coordinate value u3 held in pending registerU_PR and outputs the calculated differential value to differential valueregister V2−V0 (95).

In cycle T18, differential value u2−u3 is transferred to differentialvalue register V2−V0 (95). At this moment, subtracter 92 calculates thedifferential value between U coordinate value u3 of vertex 3 held invertex register V0 and U coordinate value u1 of vertex 1 held in vertexregister V1, and outputs the calculated differential value todifferential value register V0−V1 (93). Selector 96 selects the outputfrom subtracter 92 and outputs the selected output to rendering mainprocess section 11, by which time all the three differential values fortriangle 1-2-3 have been inputted into rendering main process section11.

Thereafter, the same process is performed. Namely, in cycle T23, all thedifferential values for triangle 2-3-4 are inputted into rendering mainprocess section 11. In the above description, the differential values ofthe coordinate values of texture coordinates are calculated andoutputted to rendering main process section 11. Alternatively, thedifferential values of XYZ coordinate values or color data may becalculated and outputted to rendering main process section 11.

As stated so far, according to the rendering process apparatus in thisembodiment, the differential values between the coordinate values or thecolor data held in the pending registers and the vertex registers arecalculated and outputted to rendering main process section 11. Thismakes it unnecessary for rendering main process section 11 to calculatethese differential values, thereby making it possible to reduceprocessing load imposed on rendering main process section 11 and to,therefore, improve the processing speed of the overall graphics system.

Although the present invention has been described and illustrated indetail, it is clearly understood that the same is by way of illustrationand example only and is not to be taken by way of limitation, the spiritand scope of the present invention being limited only by the terms ofthe appended claims.

1. A rendering process apparatus connected to a host processor and ageometry process apparatus, comprising: a rendering main process sectionperforming a rendering process in accordance with vertex data; an inputsection selectively inputting the vertex data from said host processorand said geometry process apparatus to said rendering main processsection as the vertex data for rendering process; and an input controlsection controlling output of the vertex data inputted into said inputsection, and controlling the rendering process performed by saidrendering main process section. 2-16. (canceled)